package com.kai.steering.data.service.service;

import com.kai.steering.common.vo.Result;
import com.kai.steering.data.service.entity.domainObject.NoteDO;
import com.kai.steering.data.service.entity.dto.NoteQueryDTO;
import com.kai.steering.data.service.entity.po.Note;
import com.kai.steering.common.web.service.BaseService;
import com.kai.steering.common.vo.Page;
import com.kai.steering.data.service.entity.vo.NoteVO;

import java.io.Serializable;
import java.util.List;

/**
 * <pre>
 * 笔记 服务类
 * </pre>
 *
 * @author kai
 * @since 2022-02-23
 */
public interface NoteService extends BaseService<Note> {

    /**
     * 保存
     *
     * @param noteDO
     * @return
     */
    boolean saveNote(NoteDO noteDO);

    /**
     * 修改
     *
     * @param noteDO
     * @return
     */
    boolean updateNote(Serializable noteId, NoteDO noteDO);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    boolean deleteNote(Serializable id);

    /**
     * 根据ID获取查询对象
     *
     * @param id
     * @return
     */
    NoteDO getNoteById (Serializable id);


    /**
     * 获取所有对象
     *
     * @return
     */
    List<NoteVO> getAllNote();

    /**
     * 获取分页对象
     *
     * @param noteQueryParam
     * @return
     */
    Page<NoteVO> getNotePageList(NoteQueryDTO noteQueryParam);

    /**
     * 判断某属性是否存在
     *
     * @param key
     * @param val
     * @param id
     * @return
     */
    boolean isExists(String key, String val, Serializable id);

//     NoteDO getNoteByQuestion(String questionId,String userId);

//    Result<NoteDO> getNoteByQuestion(String questionId);
}

